package org.sws.domain.activity.service.quota;

import org.sws.domain.activity.model.entity.DeliveryOrderEntity;
import org.sws.domain.activity.model.entity.SkuRechargeEntity;
import org.sws.domain.activity.model.entity.UnpaidActivityOrderEntity;

/**
 * @Author sws
 * @Date 2025/3/18 21:19
 * @description: 抽奖额度服务接口
 */
public interface IRaffleActivityAccountQuotaService {

    /**
     * 创建sku 账户充值订单，给用户增加抽奖额度
     * 1. 在【打卡、签到、分享、对话、积分兑换】等行为动作下，创建出活动订单，给用户的活动账户【日、月】充值可用的抽奖次数。
     * 2. 对于用户可获得的抽奖次数，比如首次进来就有一次，则是依赖于运营配置的动作，在前端页面上。用户点击后，可以获得一次抽奖次数。
     * @param skuRechargeEntity 活动充值额度
     * @return rechargeId 额度充值记录单id
     */
    UnpaidActivityOrderEntity creatSkuRechargeOrder(SkuRechargeEntity skuRechargeEntity);

    /**
     * 查询用户账户抽奖次数
     *
     * @param activityId 活动id
     * @param userId 用户ID
     * @param awardLockCheckFlag 查询月、日、总额度标识
     * @return 已参与的抽奖次数
     */
    Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId, String awardLockCheckFlag);
    /**
     * 订单出货 - 积分充值
     * @param deliveryOrderEntity 出货单实体对象
     */
    void updateRechargeOrder(DeliveryOrderEntity deliveryOrderEntity);
}
